package javabean.MerchantInfo;

import cn.hutool.core.annotation.Alias;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Data
@ApiModel(description = "受益人")
public class BeneficiaryInfo {

    @Alias("bo_name")
    @ApiModelProperty(value = "受益人名称【示例值：张三】", required = true)
    @NotBlank(message = "boName不能为空")
    @Length(min = 1, max = 40, message = "boName 长度范围：1~40")
    private String boName;

    @Alias("bo_type")
    @ApiModelProperty(value = "受益人证件类型【参考《自然人证件类型》以及12:营业执照；示例值：12】", required = true)
    @NotBlank(message = "boType不能为空")
    @Length(min = 1, max = 2, message = "boType 长度范围：1~2")
    private String boType;

    @Alias("bo_no")
    @ApiModelProperty(value = "受益人证件号【示例值：3209219851202732】", required = true)
    @NotBlank(message = "boNo不能为空")
    @Length(min = 1, max = 50, message = "boNo 长度范围：1~50")
    private String boNo;

    @Alias("bo_date_start")
    @ApiModelProperty(value = "受益人证件有效期开始时间【示例值：20210606】", required = true)
    @NotBlank(message = "boDateStart不能为空")
    @Length(min = 1, max = 8, message = "boDateStart 长度范围：1~8")
    private String boDateStart;

    @Alias("bo_dead_line")
    @ApiModelProperty(value = "受益人证件有效期结束时间【示例值：20290606；若证件有效期为长期，请填写：29991231；要求结束时间大于开始时间；】", required = true)
    @NotBlank(message = "boDeadLine不能为空")
    @Length(min = 1, max = 8, message = "boDeadLine 长度范围：1~8")
    private String boDeadLine;

    @Alias("bo_address")
    @ApiModelProperty(value = "受益人证件地址【示例值：上海徐汇区共富一路55号401室；】", required = true)
    @NotBlank(message = "boAddress不能为空")
    @Length(min = 1, max = 500, message = "boAddress 长度范围：1~500")
    private String boAddress;

    @Alias("bo_mobile_no")
    @ApiModelProperty(value = "受益人手机号【开通全域资金管理业务时必填；示例值：13911111111】", required = false)
    @Length(min = 1, max = 11, message = "boMobileNo 长度范围：1~11")
    private String boMobileNo;

    @Alias("final_beneficiary_mode")
    @ApiModelProperty(value = "最终受益人受益方式【A01：直接或间接控股25%（含）以上;A02：通过人事、财务等其他方式对公司进行控制;A03：高级管理人员;A04：法人或公司负责人;A05：其他;示例值：A01;开通全域资金管理业务时必填】", required = false)
    @Length(min = 1, max = 3, message = "finalBeneficiaryMode 长度范围：1~3")
    private String finalBeneficiaryMode;

}